package com.simon.nvwo.modules.web.listencer;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;


/**
 * 监听器是实现了 {@link javax.servlet.ServletContextListener}接口的服务器端程序， 做一些初始化的内容添加工作、设置一些基本的内容、比如一些参数或者是一些固定的对象等等
 * 监听器随web应用启动而启动，随web应用销毁而销毁，只初始化一次
 * @author zhaoyi
 *
 */
public class ListencerDemo implements ServletContextListener{
	
	
	/**
	 * 初始化监听器，设置数据源
	 */
	@Override
	public void contextInitialized(ServletContextEvent event) {
		// TODO Auto-generated method stub
		
		//获取应用的所有资源
		//在web应用启动的时候做初始化的工作
		ServletContext context=event.getServletContext();
		
//		//创建数据源对象 连接池 dbcp
//        BasicDataSource bds = new BasicDataSource();
//        bds.setDriverClassName("");
//        bds.setUrl("");
//        bds.setUsername("root");
//        bds.setPassword("root");
//        bds.setMaxActive(10);//最大连接数
//        bds.setMaxIdle(5);//最大管理数
        //bds.setMaxWait(maxWait); 最大等待时间 
        
        // 把 DataSource 放入ServletContext空间中，        
        // 供整个web应用的使用(获取数据库连接)        
		//context.setAttribute("datasource", bds);
        System.out.println("应用监听器初始化成功...");
        System.out.println("配置数据源datasource成功...");
	}
	
	/**
	 * 监听器的销毁方式
	 */
	@Override
	public void contextDestroyed(ServletContextEvent event) {
		// TODO Auto-generated method stub
		
		ServletContext context=event.getServletContext();
		//在应用销毁前，将应用设置空间清除
		context.removeAttribute("datasource");
System.out.println("销毁工作完成");		
	}
	
	
	
	

}
